/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaLogica;

import CapaAccesoBD.Conector;
import java.util.ArrayList;

/**
 *
 * @author DiegoRivera
 */
public class MultiAutor {
    /**
    * Inserta un registro de la Autor en la base de datos
    *
    * @param  codigo  identificador del Autor
    * @param  ppais nombre del artista
    * @param  fec_ina nombre del artista
    * @param  pdescrip nombre del artista
    * @return   el objeto Autor
    */
    
    
    public  Autor crear(String codigo, String nombre, String apellido, String direcion, String email, String nacionalidad, String paisOrigen)
        throws Exception{

        Autor objAutor=null;
        String sql;
        sql = "INSERT INTO TAutor " +
        "VALUES ('"+codigo+"', '"+nombre+"', '"+apellido+"', '"+direcion+"', '"+email+"', '"+nacionalidad+"', '"+paisOrigen+"');";
        try {
            Conector.getConector().ejecutarSQL(sql);
            objAutor = new Autor (codigo, nombre, apellido, direcion, email, nacionalidad, paisOrigen);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
        return objAutor;
    }
    /**
    *Actualiza los datos de un Autor
    *
    * @param  objAutor  objeto Autor
    */	
        
    public  void actualizar(Autor objAutor) throws 
                java.sql.SQLException,Exception{
        String sql;
        sql = "UPDATE TAutor "+
        "SET codigo='"+objAutor.getCodigo()+"' "+
        ",nombre='"+objAutor.getNombre()+"' "+
        ",apellido='"+objAutor.getApellido()+"' "+  
        ",direccion='"+objAutor.getDirecion()+"' "+ 
        ",email='"+objAutor.getEmail()+"' "+ 
        ",nacionalidad='"+objAutor.getNacionalidad()+"' "+ 
        ",paisOrigen='"+objAutor.getPaisOrigen()+"' "+ 
        "WHERE nombre='"+objAutor.getNombre()+"';";
        try {
            Conector.getConector().ejecutarSQL(sql);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
    }
    /**
    *Borra el registro de una Autor
    *
    * @param  objAutor  objeto Autor
    */
    public  void borrar(Autor objAutor) throws 
                    java.sql.SQLException,Exception{
        String sql;
        sql = "DELETE FROM TAutor "+
        "WHERE nombre='"+objAutor.getCodigo()+"';";
        try {
            Conector.getConector().ejecutarSQL(sql);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
    }
    /**
    *Busca las coincidencias de las Autors con un
    * nombre determinado
    *
    * @param  pnomAutor  nombre de la una Autor
    */  
    public Autor buscarPorCodigo(String pcodigo) throws Exception{
        Autor objAutor=null;
        String sql;
        java.sql.ResultSet rs;
        sql = "SELECT codigo, nombre, apellido, direcion, email, nacionalidad, paisOrigen " + 
              "FROM TAutor " + 
              "WHERE codigo = '"+pcodigo+"';";
        try{

            rs = Conector.getConector().ejecutarSQL(sql,true);
            if(rs.next()){
                objAutor = new Autor (rs.getString("codigo"), rs.getString("nombre"), rs.getString("apellido"), rs.getString("direcion"), rs.getString("email"), rs.getString("nacionalidad"), rs.getString("paisOrigen"));
            }
        }catch (Exception e){ 
            throw new Exception (e.getMessage());
        }
        rs.close();

        return objAutor;
    }        
    /**
    *Busca las coincidencias de las Autors con un
    * nombre determinado
    *
    * @param  pnomAutor  nombre de la una Autor
    * @return   ArrayList<Autor>
    */ 
    public ArrayList<Autor> buscarAutoresPorNombre(String pnomAutor) throws Exception{
        Autor objAutor;
        ArrayList<Autor> listaAutores;
        String sql;
        java.sql.ResultSet rs;
        sql = "SELECT * " + 
                "FROM TAutor " + 
                "WHERE nombre like '%"+pnomAutor+"%';";
        try{
            rs = Conector.getConector().ejecutarSQL(sql,true);
            listaAutores = new ArrayList<>();
            if (rs.next()) {
                do{
                    String x=rs.getString("codigo");
                    String x1=rs.getString("nombre");
                    String x2=rs.getString("apellido");
                    String x3=rs.getString("email");
                    String x4=rs.getString("direccion");
                    String x5=rs.getString("nacionalidad");
                    String x6=rs.getString("paisOrigen");
                    

                    objAutor = new Autor (rs.getString("codigo"), rs.getString("nombre"), rs.getString("apellido"), rs.getString("direccion"), rs.getString("email"), rs.getString("nacionalidad"), rs.getString("paisOrigen"));
                    listaAutores.add(objAutor);
                }while (rs.next());
            }
        }catch (Exception e){
            throw new Exception (e.getMessage());
        }
        rs.close();

        return listaAutores;
    }
    
}